import { Toast } from 'antd-mobile'
import axios from 'axios'
import qs from 'qs'
import store from '../store/index'
import { getuserinfo } from '../store/mouble/login'

//配置环境
let baseUrl =""
let imgPre=''
if(process.env.NODE_ENV ==="development"){
        //开发环境
        baseUrl="/api"
        //配置图片前缀
        imgPre="http://localhost:1000"

}else{
        //生产环境
}
export {imgPre}


//请求拦截
axios.interceptors.request.use(config=>{
        //请求拦截的逻辑
        //补基础路径
        config.url=baseUrl+config.url;
        if(!(config.url.includes('login')||config.url.includes('register'))){
                config.headers.authorization=getuserinfo(store.getState()).token
        }
        return config
})
//响应拦截
axios.interceptors.response.use(res=>{
        //响应拦截的逻辑
        
        //统一打印响应数据
        console.group('本地请求地址：'+res.config.url)
        console.log(res);
        console.groupEnd()

        //统一处理失败情景
        if(res.data.code!=200){
                Toast.show({
                        content:res.data.msg
                })
        }
         //统一处理掉线
         if(res.data.msg=='登录已过期或访问权限受限'){
                window.open('/','_self')
        }
        return res;
})

//get请求方式 url 请求地址 params参数 默认{}
export const get=(url,params={})=>{
        return axios({
                url,
                params
        })
}

//post请求方式 url请求地址 params参数 haveFile文件长传
export const post=(url,params={},haveFile=false)=>{
    let data =null;
    if(haveFile){//如果有文件上传 创建formData  遍历参数 将其append到data中
       data=new FormData();
       for(let i in params){
         data.append(i,params[i])
       }
    }else{//如果没有文件上传 正常传参即可
        //按后端要求传参 字符类型 对象类型
        data = qs.stringify(params)
        // data=params

    }

    return axios({
            url,
            method:'post',
            data
    })
}